
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="zh_CN">
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>pyclbr --- Python class browser support &#8212; Python 3.7.3 文档</title>
    <link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    
    <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <script type="text/javascript" src="../_static/language_data.js"></script>
    <script type="text/javascript" src="../_static/translations.js"></script>
    
    <script type="text/javascript" src="../_static/sidebar.js"></script>
    
    <link rel="search" type="application/opensearchdescription+xml"
          title="在 Python 3.7.3 文档 中搜索"
          href="../_static/opensearch.xml"/>
    <link rel="author" title="关于这些文档" href="../about.html" />
    <link rel="index" title="索引" href="../genindex.html" />
    <link rel="search" title="搜索" href="../search.html" />
    <link rel="copyright" title="版权所有" href="../copyright.html" />
    <link rel="next" title="py_compile --- Compile Python source files" href="py_compile.html" />
    <link rel="prev" title="tabnanny --- Detection of ambiguous indentation" href="tabnanny.html" />
    <link rel="shortcut icon" type="image/png" href="../_static/py.png" />
    <link rel="canonical" href="https://docs.python.org/3/library/pyclbr.html" />
    
    <script type="text/javascript" src="../_static/copybutton.js"></script>
    <script type="text/javascript" src="../_static/switchers.js"></script>
    
    
    
    <style>
      @media only screen {
        table.full-width-table {
            width: 100%;
        }
      }
    </style>
 

  </head><body>  
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>导航</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="总目录"
             accesskey="I">索引</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python 模块索引"
             >模块</a> |</li>
        <li class="right" >
          <a href="py_compile.html" title="py_compile --- Compile Python source files"
             accesskey="N">下一页</a> |</li>
        <li class="right" >
          <a href="tabnanny.html" title="tabnanny --- Detection of ambiguous indentation"
             accesskey="P">上一页</a> |</li>
        <li><img src="../_static/py.png" alt=""
                 style="vertical-align: middle; margin-top: -1px"/></li>
        <li><a href="https://www.python.org/">Python</a> &#187;</li>
        <li>
          <span class="language_switcher_placeholder">zh_CN</span>
          <span class="version_switcher_placeholder">3.7.3</span>
          <a href="../index.html">文档</a> &#187;
        </li>

          <li class="nav-item nav-item-1"><a href="index.html" >Python 标准库</a> &#187;</li>
          <li class="nav-item nav-item-2"><a href="language.html" accesskey="U">Python 语言服务</a> &#187;</li>
    <li class="right">
        

    <div class="inline-search" style="display: none" role="search">
        <form class="inline-search" action="../search.html" method="get">
          <input placeholder="快速搜索" type="text" name="q" />
          <input type="submit" value="转向" />
          <input type="hidden" name="check_keywords" value="yes" />
          <input type="hidden" name="area" value="default" />
        </form>
    </div>
    <script type="text/javascript">$('.inline-search').show(0);</script>
         |
    </li>

      </ul>
    </div>    

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <div class="section" id="module-pyclbr">
<span id="pyclbr-python-class-browser-support"></span><h1><a class="reference internal" href="#module-pyclbr" title="pyclbr: Supports information extraction for a Python class browser."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pyclbr</span></code></a> --- Python class browser support<a class="headerlink" href="#module-pyclbr" title="永久链接至标题">¶</a></h1>
<p><strong>Source code:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/3.7/Lib/pyclbr.py">Lib/pyclbr.py</a></p>
<hr class="docutils" />
<p>The <a class="reference internal" href="#module-pyclbr" title="pyclbr: Supports information extraction for a Python class browser."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pyclbr</span></code></a> module provides limited information about the
functions, classes, and methods defined in a Python-coded module.  The
information is sufficient to implement a module browser.  The
information is extracted from the Python source code rather than by
importing the module, so this module is safe to use with untrusted code.
This restriction makes it impossible to use this module with modules not
implemented in Python, including all standard and optional extension
modules.</p>
<dl class="function">
<dt id="pyclbr.readmodule">
<code class="descclassname">pyclbr.</code><code class="descname">readmodule</code><span class="sig-paren">(</span><em>module</em>, <em>path=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pyclbr.readmodule" title="永久链接至目标">¶</a></dt>
<dd><p>Return a dictionary mapping module-level class names to class
descriptors.  If possible, descriptors for imported base classes are
included.  Parameter <em>module</em> is a string with the name of the module
to read; it may be the name of a module within a package.  If given,
<em>path</em> is a sequence of directory paths prepended to <code class="docutils literal notranslate"><span class="pre">sys.path</span></code>,
which is used to locate the module source code.</p>
</dd></dl>

<dl class="function">
<dt id="pyclbr.readmodule_ex">
<code class="descclassname">pyclbr.</code><code class="descname">readmodule_ex</code><span class="sig-paren">(</span><em>module</em>, <em>path=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pyclbr.readmodule_ex" title="永久链接至目标">¶</a></dt>
<dd><p>Return a dictionary-based tree containing a function or class
descriptors for each function and class defined in the module with a
<code class="docutils literal notranslate"><span class="pre">def</span></code> or <code class="docutils literal notranslate"><span class="pre">class</span></code> statement.  The returned dictionary maps
module-level function and class names to their descriptors.  Nested
objects are entered into the children dictionary of their parent.  As
with readmodule, <em>module</em> names the module to be read and <em>path</em> is
prepended to sys.path.  If the module being read is a package, the
returned dictionary has a key <code class="docutils literal notranslate"><span class="pre">'__path__'</span></code> whose value is a list
containing the package search path.</p>
</dd></dl>

<div class="versionadded">
<p><span class="versionmodified">3.7 新版功能: </span>Descriptors for nested definitions.  They are accessed through the
new children attibute.  Each has a new parent attribute.</p>
</div>
<p>The descriptors returned by these functions are instances of
Function and Class classes.  Users are not expected to create instances
of these classes.</p>
<div class="section" id="function-objects">
<span id="pyclbr-function-objects"></span><h2>函数对象<a class="headerlink" href="#function-objects" title="永久链接至标题">¶</a></h2>
<p>Class <code class="xref py py-class docutils literal notranslate"><span class="pre">Function</span></code> instances describe functions defined by def
statements.  They have the following attributes:</p>
<dl class="attribute">
<dt id="pyclbr.Function.file">
<code class="descclassname">Function.</code><code class="descname">file</code><a class="headerlink" href="#pyclbr.Function.file" title="永久链接至目标">¶</a></dt>
<dd><p>Name of the file in which the function is defined.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Function.module">
<code class="descclassname">Function.</code><code class="descname">module</code><a class="headerlink" href="#pyclbr.Function.module" title="永久链接至目标">¶</a></dt>
<dd><p>The name of the module defining the function described.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Function.name">
<code class="descclassname">Function.</code><code class="descname">name</code><a class="headerlink" href="#pyclbr.Function.name" title="永久链接至目标">¶</a></dt>
<dd><p>The name of the function.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Function.lineno">
<code class="descclassname">Function.</code><code class="descname">lineno</code><a class="headerlink" href="#pyclbr.Function.lineno" title="永久链接至目标">¶</a></dt>
<dd><p>The line number in the file where the definition starts.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Function.parent">
<code class="descclassname">Function.</code><code class="descname">parent</code><a class="headerlink" href="#pyclbr.Function.parent" title="永久链接至目标">¶</a></dt>
<dd><p>For top-level functions, None.  For nested functions, the parent.</p>
<div class="versionadded">
<p><span class="versionmodified">3.7 新版功能.</span></p>
</div>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Function.children">
<code class="descclassname">Function.</code><code class="descname">children</code><a class="headerlink" href="#pyclbr.Function.children" title="永久链接至目标">¶</a></dt>
<dd><p>A dictionary mapping names to descriptors for nested functions and
classes.</p>
<div class="versionadded">
<p><span class="versionmodified">3.7 新版功能.</span></p>
</div>
</dd></dl>

</div>
<div class="section" id="class-objects">
<span id="pyclbr-class-objects"></span><h2>类对象<a class="headerlink" href="#class-objects" title="永久链接至标题">¶</a></h2>
<p>Class <code class="xref py py-class docutils literal notranslate"><span class="pre">Class</span></code> instances describe classes defined by class
statements.  They have the same attributes as Functions and two more.</p>
<dl class="attribute">
<dt id="pyclbr.Class.file">
<code class="descclassname">Class.</code><code class="descname">file</code><a class="headerlink" href="#pyclbr.Class.file" title="永久链接至目标">¶</a></dt>
<dd><p>Name of the file in which the class is defined.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Class.module">
<code class="descclassname">Class.</code><code class="descname">module</code><a class="headerlink" href="#pyclbr.Class.module" title="永久链接至目标">¶</a></dt>
<dd><p>The name of the module defining the class described.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Class.name">
<code class="descclassname">Class.</code><code class="descname">name</code><a class="headerlink" href="#pyclbr.Class.name" title="永久链接至目标">¶</a></dt>
<dd><p>The name of the class.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Class.lineno">
<code class="descclassname">Class.</code><code class="descname">lineno</code><a class="headerlink" href="#pyclbr.Class.lineno" title="永久链接至目标">¶</a></dt>
<dd><p>The line number in the file where the definition starts.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Class.parent">
<code class="descclassname">Class.</code><code class="descname">parent</code><a class="headerlink" href="#pyclbr.Class.parent" title="永久链接至目标">¶</a></dt>
<dd><p>For top-level classes, None.  For nested classes, the parent.</p>
<div class="versionadded">
<p><span class="versionmodified">3.7 新版功能.</span></p>
</div>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Class.children">
<code class="descclassname">Class.</code><code class="descname">children</code><a class="headerlink" href="#pyclbr.Class.children" title="永久链接至目标">¶</a></dt>
<dd><p>A dictionary mapping names to descriptors for nested functions and
classes.</p>
<div class="versionadded">
<p><span class="versionmodified">3.7 新版功能.</span></p>
</div>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Class.super">
<code class="descclassname">Class.</code><code class="descname">super</code><a class="headerlink" href="#pyclbr.Class.super" title="永久链接至目标">¶</a></dt>
<dd><p>A list of <code class="xref py py-class docutils literal notranslate"><span class="pre">Class</span></code> objects which describe the immediate base
classes of the class being described.  Classes which are named as
superclasses but which are not discoverable by <a class="reference internal" href="#pyclbr.readmodule_ex" title="pyclbr.readmodule_ex"><code class="xref py py-func docutils literal notranslate"><span class="pre">readmodule_ex()</span></code></a>
are listed as a string with the class name instead of as
<code class="xref py py-class docutils literal notranslate"><span class="pre">Class</span></code> objects.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Class.methods">
<code class="descclassname">Class.</code><code class="descname">methods</code><a class="headerlink" href="#pyclbr.Class.methods" title="永久链接至目标">¶</a></dt>
<dd><p>A dictionary mapping method names to line numbers.  This can be
derived from the newer children dictionary, but remains for
back-compatibility.</p>
</dd></dl>

</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../contents.html">Table of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">pyclbr</span></code> --- Python class browser support</a><ul>
<li><a class="reference internal" href="#function-objects">函数对象</a></li>
<li><a class="reference internal" href="#class-objects">类对象</a></li>
</ul>
</li>
</ul>

  <h4>上一个主题</h4>
  <p class="topless"><a href="tabnanny.html"
                        title="上一章"><code class="docutils literal notranslate"><span class="pre">tabnanny</span></code> --- Detection of ambiguous indentation</a></p>
  <h4>下一个主题</h4>
  <p class="topless"><a href="py_compile.html"
                        title="下一章"><code class="docutils literal notranslate"><span class="pre">py_compile</span></code> --- Compile Python source files</a></p>
  <div role="note" aria-label="source link">
    <h3>本页</h3>
    <ul class="this-page-menu">
      <li><a href="../bugs.html">提交 Bug</a></li>
      <li>
        <a href="https://github.com/python/cpython/blob/3.7/Doc/library/pyclbr.rst"
            rel="nofollow">显示源代码
        </a>
      </li>
    </ul>
  </div>
        </div>
      </div>
      <div class="clearer"></div>
    </div>  
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>导航</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="总目录"
             >索引</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python 模块索引"
             >模块</a> |</li>
        <li class="right" >
          <a href="py_compile.html" title="py_compile --- Compile Python source files"
             >下一页</a> |</li>
        <li class="right" >
          <a href="tabnanny.html" title="tabnanny --- Detection of ambiguous indentation"
             >上一页</a> |</li>
        <li><img src="../_static/py.png" alt=""
                 style="vertical-align: middle; margin-top: -1px"/></li>
        <li><a href="https://www.python.org/">Python</a> &#187;</li>
        <li>
          <span class="language_switcher_placeholder">zh_CN</span>
          <span class="version_switcher_placeholder">3.7.3</span>
          <a href="../index.html">文档</a> &#187;
        </li>

          <li class="nav-item nav-item-1"><a href="index.html" >Python 标准库</a> &#187;</li>
          <li class="nav-item nav-item-2"><a href="language.html" >Python 语言服务</a> &#187;</li>
    <li class="right">
        

    <div class="inline-search" style="display: none" role="search">
        <form class="inline-search" action="../search.html" method="get">
          <input placeholder="快速搜索" type="text" name="q" />
          <input type="submit" value="转向" />
          <input type="hidden" name="check_keywords" value="yes" />
          <input type="hidden" name="area" value="default" />
        </form>
    </div>
    <script type="text/javascript">$('.inline-search').show(0);</script>
         |
    </li>

      </ul>
    </div>  
    <div class="footer">
    &copy; <a href="../copyright.html">版权所有</a> 2001-2019, Python Software Foundation.
    <br />
    Python 软件基金会是一个非盈利组织。
    <a href="https://www.python.org/psf/donations/">请捐助。</a>
    <br />
    最后更新于 4月 09, 2019.
    <a href="../bugs.html">发现了问题</a>？
    <br />
    使用<a href="http://sphinx.pocoo.org/">Sphinx</a>1.8.4 创建。
    </div>

  </body>
</html>